package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 航班对象 flight
 * 
 * @author ruoyi
 * @date 2023-05-10
 */
public class Flight extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 航班id */
    private Long id;

    /** 所在机场id,对应airport表的id */
    @Excel(name = "所在机场id,对应airport表的id")
    private Long airportId;

    /** 航空公司的id */
    @Excel(name = "航空公司的id")
    private Long companyId;

    /** 飞机起飞时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "飞机起飞时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date departureTime;

    /** 飞机降落时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "飞机降落时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date landingTime;

    /** 起飞机场id */
    @Excel(name = "起飞机场id")
    private Long departureAirport;

    /** 降落机场id */
    @Excel(name = "降落机场id")
    private Long landingAirport;

    /** 退改费用 */
    @Excel(name = "退改费用")
    private BigDecimal refundFee;

    /** 托运行李额 */
    @Excel(name = "托运行李额")
    private Long baggageAllowance;

    /** 航班座位类型(1、经济舱  2、公务/头等舱) */
    @Excel(name = "航班座位类型(1、经济舱  2、公务/头等舱)")
    private Long flightSeatType;

    /** 剩余机票数量 */
    @Excel(name = "剩余机票数量")
    private Long remainingAmount;

    /** 价格 */
    @Excel(name = "价格")
    private BigDecimal price;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setAirportId(Long airportId) 
    {
        this.airportId = airportId;
    }

    public Long getAirportId() 
    {
        return airportId;
    }
    public void setCompanyId(Long companyId) 
    {
        this.companyId = companyId;
    }

    public Long getCompanyId() 
    {
        return companyId;
    }
    public void setDepartureTime(Date departureTime) 
    {
        this.departureTime = departureTime;
    }

    public Date getDepartureTime() 
    {
        return departureTime;
    }
    public void setLandingTime(Date landingTime) 
    {
        this.landingTime = landingTime;
    }

    public Date getLandingTime() 
    {
        return landingTime;
    }
    public void setDepartureAirport(Long departureAirport) 
    {
        this.departureAirport = departureAirport;
    }

    public Long getDepartureAirport() 
    {
        return departureAirport;
    }
    public void setLandingAirport(Long landingAirport) 
    {
        this.landingAirport = landingAirport;
    }

    public Long getLandingAirport() 
    {
        return landingAirport;
    }
    public void setRefundFee(BigDecimal refundFee) 
    {
        this.refundFee = refundFee;
    }

    public BigDecimal getRefundFee() 
    {
        return refundFee;
    }
    public void setBaggageAllowance(Long baggageAllowance) 
    {
        this.baggageAllowance = baggageAllowance;
    }

    public Long getBaggageAllowance() 
    {
        return baggageAllowance;
    }
    public void setFlightSeatType(Long flightSeatType) 
    {
        this.flightSeatType = flightSeatType;
    }

    public Long getFlightSeatType() 
    {
        return flightSeatType;
    }
    public void setRemainingAmount(Long remainingAmount) 
    {
        this.remainingAmount = remainingAmount;
    }

    public Long getRemainingAmount() 
    {
        return remainingAmount;
    }
    public void setPrice(BigDecimal price) 
    {
        this.price = price;
    }

    public BigDecimal getPrice() 
    {
        return price;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("airportId", getAirportId())
            .append("companyId", getCompanyId())
            .append("departureTime", getDepartureTime())
            .append("landingTime", getLandingTime())
            .append("departureAirport", getDepartureAirport())
            .append("landingAirport", getLandingAirport())
            .append("refundFee", getRefundFee())
            .append("baggageAllowance", getBaggageAllowance())
            .append("flightSeatType", getFlightSeatType())
            .append("remainingAmount", getRemainingAmount())
            .append("price", getPrice())
            .toString();
    }
}
